﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NHibernate.Mapping.Attributes;
using System.Runtime.Serialization;

namespace VemTransporte.Models.Basica
{
    [DataContract(Name="Localizacao")]
    [KnownType(typeof(Localizacao))]
    [Class(Table="Localizacao")]
    public class Localizacao
    {
        #region Atributos
        private long id = 0;
        private double latitude;
        private double longitude;
        private int velocidade;
        private Nullable<DateTime> dataHoraServer;
        private Veiculo _Veiculo;
        #endregion

        #region Propriedades
        [Id(Name="Id", Column="PK_IdLocalizacao")]
        [Generator(1, Class="native")]
        public virtual long Id
        {
            get { return id; }
            set { id = value; }
        }

        [DataMember]
        [Property(Column="LOC_Latitude")]
        public virtual double Latitude
        {
            get { return latitude; }
            set { latitude = value; }
        }

        [DataMember]
        [Property(Column = "LOC_Longitude")]
        public virtual double Longitude
        {
            get { return longitude; }
            set { longitude = value; }
        }

        [DataMember]
        [Property(Column = "LOC_Velocidade")]
        public virtual int Velocidade
        {
            get { return velocidade; }
            set { velocidade = value; }
        }

        [Property(Column = "LOC_DataHoraServer")]
        public virtual Nullable<DateTime> DataHoraServer
        {
            get { return dataHoraServer; }
            set { dataHoraServer = value; }
        }

        [ManyToOne(Name = "Veiculo", Column = "FK_IdVeiculo", ClassType = typeof(Veiculo), Fetch = FetchMode.Join)]
        public virtual Veiculo Veiculo
        {
            get { return _Veiculo; }
            set { _Veiculo = value; }
        }

        #endregion

        #region Contrutores
        public Localizacao() { }

        #endregion

    }
}